Introduction au machine learning

Les grands principes

Vous avez dit “machine learning” ?

“La bonne vieille IA”…

…VS l’apprentissage automatique

Les différents types d’apprentissage automatique

  1. L’apprentissage supervisé

  2. L’apprentissage non supervisé

  3. L’apprentissage par essai/erreur

Différence entre supervisé et non supervisé

But de l’apprentissage supervisé : la prédiction

  • \[ Y = f(X_1, X_2, ...,X_n) \]

  • Le but premier de l’apprentissage supervisé n’est pas d’expliquer mais bien de prédire.

Régression et classification

Prédire ou estimer ?

Y_prix X1_surface
logement1 1000 50
logement2 800 30
logement3 600 25
logement4 1000 60
logement5 800 35

\[ Y = 416,5 + 10,6 X_1 \]

Y_prix X1_surface prix_estime
logement1 1000 50 945.9
logement2 800 30 734.1
logement3 600 25 681.2
logement4 1000 60 1051.8
logement5 800 35 787.1
surface prix_prevu
logement6 45 892.9
logement7 30 734.1
logement8 110 1581.2

Comment la machine apprend ?

  • La machine learning apprend sur des données étiquetées grace à des algorithmes (exemple : la régression linéaire pour des don).

  • Le but de ces algorithmes est de minimiser l’erreur d’estimation.

  • Il existe de nombreux modèles/algorithmes.

Les classes de modèles

  1. Les modèles de régression

  2. Les modèles à base d’arbre

  3. Les réseaux de neurones et le deep learning

C’est quoi un “bon” apprentissage ?

Le compromis biais-variance

Autre exemple

Les grandes étapes

Les étapes de l’apprentissage supervisé :

  1. Définir le sujet (classification ou régression ?)

  2. Explorer et nettoyer la base de données

  3. Réserver une partie de la base pour l’apprentissage/test

  4. Apprendre des données avec des modèles/algorithmes

  5. Comparer les performances prédictives de ces algorithmes

  6. Choisir le meilleur modèle et le mettre en production

Etape 1 : définir le problème

Régression ou classification ?

Y_REVENU X1_NBPIECES X2_AGE
42476 4 59
14155 3 96
24696 1 41
21418 2 74
64255 5 38
42047 3 43

Etape 2 : Explorer, nettoyer et améliorer la base

Exploration

Data summary
Name grandile
Number of rows 5418
Number of columns 3
_______________________
Column type frequency:
numeric 3
________________________
Group variables None

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Y_REVENU 0 1 33889.09 19431.26 9823 19771.5 27169.5 44531 116674 ▇▅▁▁▁
X1_NBPIECES 0 1 3.61 1.94 1 2.0 3.0 5 10 ▇▇▆▂▁
X2_AGE 0 1 51.82 18.74 16 37.0 50.0 66 99 ▅▇▇▅▂

Nettoyage et transformation des données

  • Traitement des données manquantes

  • Traitement des “outliers”

  • Encodage de variables

  • Création de nouvelles variables

Etape 3 : Partitionner la base

Partition de la base

Partition de grandile

Data summary
Name train_grandile
Number of rows 3250
Number of columns 3
_______________________
Column type frequency:
numeric 3
________________________
Group variables None

Variable type: numeric

skim_variable n_missing complete_rate mean sd p0 p25 p50 p75 p100 hist
Y_REVENU 0 1 33478.94 19253.68 9823 19689.75 26673.5 44496.5 109241 ▇▅▂▁▁
X1_NBPIECES 0 1 3.59 1.92 1 2.00 3.0 5.0 10 ▇▇▆▂▁
X2_AGE 0 1 51.92 18.80 16 37.00 50.0 66.0 99 ▅▇▆▅▂

Etape 4 : Entraînement des modèles

Modèle 1 : Régression linéaire

        Length Class      Mode   
pre     3      stage_pre  list   
fit     2      stage_fit  list   
post    1      stage_post list   
trained 1      -none-     logical

Modèle 2 : Arbre de régression, comment ça marche ?

  1. L’algorithme (CART) choisit la variable la plus discriminante

  2. Test de toutes les valeurs pour déterminer le seuil optimal

  3. Partage de la population en deux noeuds

  4. Il renouvelle les 3 premières étapes pour chaque noeud

  5. L’utilisateur définit le nombre de noeuds souhaités (max = N)

  6. Les valeurs estimées sont les moyennes des noeuds terminaux

Modèle 2 : Arbre de regression (visualisation)

Modèle 2 : sortie R

══ Workflow [trained] ══════════════════════════════════════════════════════════
Preprocessor: Recipe
Model: decision_tree()

── Preprocessor ────────────────────────────────────────────────────────────────
0 Recipe Steps

── Model ───────────────────────────────────────────────────────────────────────
n= 3250 

node), split, n, deviance, yval
      * denotes terminal node

 1) root 3250 1.204418e+12 33478.94  
   2) X2_AGE>=59.5 1093 7.009491e+10 18209.92 *
   3) X2_AGE< 59.5 2157 7.503724e+11 41216.09  
     6) X1_NBPIECES< 4.5 1328 3.958018e+11 35487.69  
      12) X2_AGE< 24.5 117 6.771606e+09 15298.85 *
      13) X2_AGE>=24.5 1211 3.367348e+11 37438.23  
        26) X1_NBPIECES< 1.5 225 1.676386e+10 27253.01 *
        27) X1_NBPIECES>=1.5 986 2.913035e+11 39762.44 *
     7) X1_NBPIECES>=4.5 829 2.411843e+11 50392.59 *